package com.wuyanzu.shixicoderedo.mapper;

import com.wuyanzu.shixicoderedo.common.dto.MessageQueryDTO;
import com.wuyanzu.shixicoderedo.common.vo.MessageVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;
/**
 用于实现简历第一条
 */
@Mapper
public interface MessageMapper {

    // 普通 offset 查询（浅分页）
    List<MessageVO> queryByOffset(@Param("q") MessageQueryDTO q);

    // keyset 查询（前端提供 lastCreatedAt + lastId）
    List<MessageVO> queryByKeyset(@Param("q") MessageQueryDTO q);

    // find anchor: 定位 offset 位置的 created_at,id（只扫描索引叶）
    Map<String,Object> findAnchor(@Param("q") MessageQueryDTO q, @Param("offset") int offset);

    // 基于 anchor 查询下一页（anchorCreatedAt, anchorId）
    List<MessageVO> queryByAnchor(@Param("q") MessageQueryDTO q,
                                  @Param("anchorCreatedAt") java.util.Date anchorCreatedAt,
                                  @Param("anchorId") Long anchorId,
                                  @Param("limit") int limit);

    // total count（可选，开销大）
    int countTotal(@Param("q") MessageQueryDTO q);
}
